#pragma once

#include "WorldObject.h"

class ImageResource : public WorldObject
{
public:
	enum PixelFormat
	{
		PF_RGB8,
		PF_RGBA8,
		
		PF_DXT1,
		PF_DXT1A,
		PF_DXT3,
		PF_DXT5,

		PF_RGB_PVRTC2,
		PF_RGB_PVRTC4,
		PF_RGBA_PVRTC2,
		PF_RGBA_PVRTC4,

		PF_RGB_ATC,
		PF_RGBA_ATC,

		PF_LAST
	};

public:
	ImageResource(const std::wstring& strName);

	~ImageResource();

	uint32 getWidth(void)	const { return m_nWidth;	}
	uint32 getHeight(void)	const { return m_nHeight;	}
	uint32 getDepth(void)	const { return m_nDepth;	}

	void setWidth(uint32 nWidth)	{ m_nWidth	= nWidth;	}
	void setHeight(uint32 nHeight)  { m_nHeight = nHeight;	}
	void setDepth(uint32 nDepth)	{ m_nDepth	= nDepth;	}

public:
	uint32	m_nWidth;
	uint32	m_nHeight;
	uint32	m_nDepth;

	Pointer<MemoryResource>	m_ptrMemoryResource;
};

